var express = require('express');
var router = express.Router();

// 导入操作数据的---mongoose.model()模型
var {
    User
} = require('../utils/model');


/* GET users listing. */
router.get('/', function (req, res, next) {
    res.send('respond with a resource');
});

// 注册页面--客户端forData--提交到这里(req.query   req.body)
router.post('/register', (req, res) => {
    let body = req.body;  //接收前端post请求（formData） 传来的参数
    /*
     1.判断用户名是否已经被注册
     2，用户名已经被注册--返回注册页面
     3.新用户---插入数据库---跳转登录页面
   */
    User.findOne({//查询数据库
        username: body.username
    }).then(result => {
        if (result) { //已经被注册过
            res.send("<script>alert('该用户名已被注册过！'); location.href='/register'</script>");
        } else {
            body.time = new Date();
            // 插入数据库
            User.insertMany(body)
                .then(result => {
                    res.send(`<script>alert("注册成功");location.href="/login?username=${body.username}"</script>`);
                })
                .catch(err => {//错误回调
                    res.send("<script>alert('注册失败，数据库错误'); location.href='/register'</script>");
                });
        }
    });
});


// 用户登录
router.post('/login', (req, res) => {
    let body = req.body;
    console.log(body);
    // 验证用户名 和 密码
    User.findOne({
        username: body.username
    }).then(result => {
        if (result) {//用户名是否存在
            if (result.password === body.password) {//密码是否匹配
                req.session.username = body.username;//记录用户登录状态--存到session中    
                console.log(req.session);
                res.redirect('/'); //重定向
            } else {
                res.send(`<script>alert('密码错误,请重新登录');location.href='/login'</script>`);
            }
        } else {
            res.send(`<script>alert('用户名错误,请重新登录');location.href='/login'</script>`);
        }
    });

});

// 修改信息
router.post('/changeinfo', (req, res) => {
    let body = req.body;//获取前端post传来的数据
    console.log(body);
    if (req.session.username) {
        User.updateMany({
            username: req.session.username
        }, {
            $set: body
        }).then(result => { //数据库修改成功
            res.json({
                msg: "信息修改成功！",
                result,
                code: 200
            });
        })
    } else {
        res.send(`<script>alert("用户名不对，请重新登录");location.href="/login"</script>`);
    }
});

// 重置密码
router.post('/resetpwd', (req, res) => {
    let body = req.body;//获取前端传来的新密码
    console.log(body);
    if (req.session.username) { // 判断用户登录状态
        if(body.newpwd === body.ynewpwd){  //判断两次输入的密码是否一样
            User.updateMany({ //修改密码 
                username:req.session.username
            }, {
                $set: {
                    password:body.newpwd
                }
            }).then(result => {
                res.send(`<script>alert("密码修改成功，请重新登录"); location.href="/login"</script>`);
            });
        }else{
            res.send(`<script>alert("密码与确认密码不一致"); location.href="/resetpwd"</script>`);
        }
    } else {
        res.send(`<script>alert("用户名不对，请重新登录");location.href="/login"</script>`);
    }
});















// router.all()------get 和 post 请求
// router.all('/all',(req,res)=>{
//   res.json({
//     msg:"router:包含get请求  post请求",
//     query:req.query,
//     headers:req.headers
//   });
// });

// post请求
// router.post('/post',(req,res)=>{
//   res.json({
//     msg:"post请求",
//     headers:req.headers   //请求头
//   });
// });


module.exports = router;
